package com.ruoyi.system.service.impl;

import java.util.List;

import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.uuid.UUID;
import com.ruoyi.system.domain.SysKey;
import com.ruoyi.system.utils.NoCreateUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.system.mapper.SysKeyNzMapper;
import com.ruoyi.system.domain.SysKeyNz;
import com.ruoyi.system.service.ISysKeyNzService;

/**
 * 【请填写功能名称】Service业务层处理
 * 
 * @author ruoyi
 * @date 2024-09-13
 */
@Service
public class SysKeyNzServiceImpl implements ISysKeyNzService 
{
    @Autowired
    private SysKeyNzMapper sysKeyNzMapper;


    /**
     * 查询【请填写功能名称】列表
     * 
     * @param sysKeyNz 【请填写功能名称】
     * @return 【请填写功能名称】
     */
    @Override
    public List<SysKeyNz> selectSysKeyNzList(SysKeyNz sysKeyNz)
    {
        return sysKeyNzMapper.selectSysKeyNzList(sysKeyNz);
    }

    /**
     * @param sysKey
     * @Deprecated 新增自己的卡密
     */
    @Override
    public AjaxResult addKey(SysKeyNz sysKey) {
        if (sysKey.getNumber() <= 0) {
            return AjaxResult.error("数量不能低于1张");
        }
        if (sysKey.getNumber() > 500) {
            return AjaxResult.error("单次数量不能大于500张");
        }
        StringBuilder stringBuffer = new StringBuilder();
        for (int i = 0; i < sysKey.getNumber(); i++) {
            sysKey.setCreateBy(String.valueOf(SecurityUtils.getUserId()));
            sysKey.setIsActivated("0");
            sysKey.setAccount("未使用");
            sysKey.setStatus("0");
            String key = NoCreateUtil.getID();
            switch (sysKey.getKeyTypes()) {
                case "0":
                    sysKey.setKeyNumber("JTTK" + key);
                    break;
                case "1":
                    sysKey.setKeyNumber("JTZK" + key);
                    break;
                case "2":
                    sysKey.setKeyNumber("JTYK" + key);
                    break;
                case "3":
                    sysKey.setKeyNumber("JTCS" + key);
                    break;
            }
            stringBuffer.append(sysKey.getKeyNumber()).append("\n");
            sysKeyNzMapper.insertSysKeyNz(sysKey);
        }
        return AjaxResult.success("新增成功", stringBuffer.toString());
    }

    /**
     * @param sysKeyNz
     * @Deprecated 删除自己的卡密
     */
    @Override
    public AjaxResult delKey(SysKeyNz sysKeyNz) {
        sysKeyNzMapper.deleteSysKeyNzById(sysKeyNz.getId());
        return AjaxResult.success("删除成功");
    }

    @Override
    public AjaxResult shutDown(String key) {
        // 查询当前卡密状态
        SysKeyNz sysKeyNz = sysKeyNzMapper.selectSysKeyNzById(Long.parseLong(key));
        sysKeyNz.setStatus(sysKeyNz.getStatus().equals("1") ? "0" : "1");
        sysKeyNzMapper.shutDown(sysKeyNz);
        return AjaxResult.success(sysKeyNz.getStatus().equals("1") ? "封停成功" : "解封成功");
    }

    /**
     * 解绑卡密
     *
     * @param key
     */
    @Override
    public AjaxResult noBind(String key) {
        // 查询
       sysKeyNzMapper.noBind(key);
        return AjaxResult.success("解绑成功");
    }


}
